n, m = [int(i) for i in input().split()]
k = min(n,m)
print(k+1)
for i in range(k+1):
print(i, k-i)
#include <bits/stdc++.h>
#include <cmath>
#include <string>
#include <sstream>
#include <numeric>
#include<algorithm>
# define ll long long
using namespace std;
void solve(){
int n, m, temp=0;
cin >> n >> m;
int mx=min(n,m);
cout << mx+1 << "\n";
for(int i=0; i<=mx; i++){
cout << i << " " << mx-i << "\n";
}
}
int main(){
solve();
}
94. Binary Tree Inorder Traversal | 101. Symmetric Tree |
77. Combinations | 46. Permutations |
226. Invert Binary Tree | 112. Path Sum |
1556A - A Variety of Operations | 136. Single Number |
169. Majority Element | 119. Pascal's Triangle II |
409. Longest Palindrome | 1574A - Regular Bracket Sequences |
1574B - Combinatorics Homework | 1567A - Domino Disaster |
1593A - Elections | 1607A - Linear Keyboard |
EQUALCOIN Equal Coins | XOREQN Xor Equation |
MAKEPAL Weird Palindrome Making | HILLSEQ Hill Sequence |
MAXBRIDGE Maximise the bridges | WLDRPL Wildcard Replacement |
1221. Split a String in Balanced Strings | 1002. Find Common Characters |
1602A - Two Subsequences | 1555A - PizzaForces |
1607B - Odd Grasshopper | 1084A - The Fair Nut and Elevator |
1440B - Sum of Medians | 1032A - Kitchen Utensils |